RowMapper হল Spring Framework এর একটি ইন্টারফেস যা ডেটাবেস টেবিলের একটি রো (row) কে জাভা অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়। এটি org.springframework.jdbc.core.RowMapper
প্যাকেজের অন্তর্ভুক্ত।
RowMapper ইন্টারফেসটি একটি একক মেথড প্রদান করে:
T mapRow(ResultSet rs, int rowNum) throws SQLException;
ResultSet
: ডেটাবেস থেকে প্রাপ্ত রো এর ডেটা ধারণ করে।rowNum
: রো এর ইনডেক্স।T
: রিটার্ন টাইপ যা ডেভেলপার নির্ধারণ করে।ResultSet
প্রসেসিং এড়িয়ে যায়।ResultSet
হ্যান্ডলিং কোড লেখার প্রয়োজন হয় না, যা কোডকে ছোট এবং পরিষ্কার রাখে।ডেটাবেস থেকে User
অবজেক্ট তৈরি করার জন্য একটি RowMapper ইমপ্লিমেন্টেশন:
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
return user;
}
}
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
public class UserDao {
private JdbcTemplate jdbcTemplate;
public UserDao(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List<User> getAllUsers() {
String sql = "SELECT id, name, email FROM users";
return jdbcTemplate.query(sql, new UserRowMapper());
}
}
RowMapper ইন্টারফেস সরাসরি ল্যাম্বডা এক্সপ্রেশন বা অ্যানোনিমাস ক্লাস ব্যবহার করেও ইমপ্লিমেন্ট করা যায়:
public List<User> getAllUsers() {
String sql = "SELECT id, name, email FROM users";
return jdbcTemplate.query(sql, (rs, rowNum) -> {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
return user;
});
}
ResultSet
হ্যান্ডলিং এর জন্য বারবার কোড লেখার প্রয়োজন হয় না।RowMapper
ব্যবহার করে ডেটাবেস অপারেশন আরও সুসংগঠিত হয়।Spring JDBC এর RowMapper একটি শক্তিশালী টুল যা ডেটাবেস রো-কে জাভা অবজেক্টে রূপান্তর করার কাজকে সহজ, দ্রুত এবং কার্যকরী করে তোলে। এটি ডেটাবেস অপারেশনকে আরও রিডেবল এবং পুনঃব্যবহারযোগ্য করে তোলে, যা ডেভেলপারদের ডেটাবেস ইন্টিগ্রেশন সহজ করতে সাহায্য করে।
Read more